52.N-Queens II(N 皇后 II)
链接:
https://leetcode-cn.com/problems/n-queens-ii/
题目
n _皇后问题研究的是如何将 _n 个皇后放置在 n × n 的棋盘上,并且使皇后彼此之间不能相互攻击。
给定一个整数 n ,返回 n 皇后不同的解决方案的数量。
示例:
输入: 4
输出: 2
解释: 4 皇后问题存在如下两个不同的解法。
[
[".Q..", // 解法 1
"...Q",
"Q...",
"..Q."],
["..Q.", // 解法 2
"Q...",
"...Q",
".Q.."]
]
思路
这题思路较清晰,先在第一行第一列放置皇后,之后第二行寻找可以放皇后的地方,一行一行放置,如果哪一行不能放置,那么就回溯到上一行,如果放置到了最后一行,那么就代表这种情况成立,计数加一,返回之前一步。
图解
从左上角开始,line1是正对角线,line2是斜对角线,col是竖列。
代码
1 |
|